package com.lin.service;

import com.lin.entity.DynamicEntity;
import com.lin.entity.User;
import com.lin.entity.dto.UserDto;
import com.lin.entity.vo.UserVo;

import java.util.List;

public interface PersonService {


    /**
     * 获得用户数据
     * @param userDto
     * @return
     */
    UserVo getDate(UserDto userDto);

    /**
     * 修改用户信息
     * @param user
     */
    void update(User user);

    /**
     * 获取用户发布动态信息
     *
     * @param userId
     */
    List<DynamicEntity> get(Integer userId);
    /**
     * 获取用户信息通过id
     * @param userId
     */
    User getUserByUserid(Integer userId);

    /**
     * 关注某人
     * @param
     */
    int followAUser(Integer fanId, Integer followedId);

    /**
     * 取消关注某人
     * @param fanId
     * @param followedId
     * @return
     */
    int cancelFollowAUser(Integer fanId,Integer followedId);

    /**
     * 查找用户的粉丝
     * @param userId
     * @return
     */
    List<User> findFan(Integer userId);

    /**
     * 查找用户的关注
     * @param userId
     * @return
     */
    List<User> findFollow(Integer userId);

    /**
     * 查找粉丝数量
     * @param userId
     * @return
     */
    int getFanNumById(Integer userId);

    /**
     * 查找关注数量
     * @param userId
     * @return
     */
    int getFollowNumById(Integer userId);

    /**
     * 查询动态数量
     * @param userId
     * @return
     */
    int getdynamicNumById(Integer userId);
}
